home *** CD-ROM | disk | FTP | other *** search
- /* Copyright (C) 1989 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
- /* ANSI and traditional C compatibility macros
-
- ANSI C is assumed if __STDC__ is #defined.
-
- Macros
- PTR - Generic pointer type
- LONG_DOUBLE - `long double' type
- CONST - `const' keyword
- VOLATILE - `volatile' keyword
- SIGNED - `signed' keyword
- PTRCONST - Generic const pointer (void *const)
-
- EXFUN(name, prototype) - declare external function NAME
- with prototype PROTOTYPE
- DEFUN(name, arglist, args) - define function NAME with
- args ARGLIST of types in ARGS
- DEFUN_VOID(name) - define function NAME with no args
- AND - argument separator for ARGS
- NOARGS - null arglist
- DOTS - `...' in args
-
- For example:
- extern int EXFUN(printf, (CONST char *format DOTS));
- int DEFUN(fprintf, (stream, format),
- FILE *stream AND CONST char *format DOTS) { ... }
- void DEFUN_VOID(abort) { ... }
- */
-
- #ifndef _ANSIDECL_H
-
- #define _ANSIDECL_H 1
-
-
- /* Every source file includes this file,
- so they will all get the switch for lint. */
- /* LINTLIBRARY */
-
-
- #ifdef __STDC__
-
- #define PTR void *
- #define PTRCONST void *CONST
- #define LONG_DOUBLE long double
-
- #define AND ,
- #define NOARGS void
- #define CONST const
- #define VOLATILE volatile
- #define SIGNED signed
- #define DOTS , ...
-
- #define EXFUN(name, proto) name proto
- #define DEFUN(name, arglist, args) name(args)
- #define DEFUN_VOID(name) name(NOARGS)
-
- #else /* Not ANSI C. */
-
- #define PTR char *
- #define PTRCONST PTR
- #define LONG_DOUBLE double
-
- #define AND ;
- #define NOARGS
- #define CONST
- #define VOLATILE
- #define SIGNED
- #define DOTS
-
- #define EXFUN(name, proto) name()
- #define DEFUN(name, arglist, args) name arglist args;
- #define DEFUN_VOID(name) name()
-
- #endif /* ANSI C. */
-
-
- #endif /* ansidecl.h */
-